package com.software.modelcenter.utils;

import gov.nih.ncats.molvec.Molvec;
import gov.nih.ncats.molvec.MolvecOptions;
import gov.nih.ncats.molvec.MolvecResult;
//import org.openscience.cdk.DefaultChemObjectBuilder;
//import org.openscience.cdk.exception.CDKException;
//import org.openscience.cdk.interfaces.IAtomContainer;
//import org.openscience.cdk.io.MDLV2000Reader;
//import org.openscience.cdk.smiles.SmiFlavor;
//import org.openscience.cdk.smiles.SmilesGenerator;

import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RecognitionUtil {

//    public static String scanImgToSmiles(String imgPath){
//        MolvecOptions options = new MolvecOptions()
//                .center(true)
//                .averageBondLength(2);
//
//        File file = new File(imgPath);
//        MolvecResult result = null;
//        try {
//            //OCR识别
//            result = Molvec.ocr(file, options);
//            //转换格式
//            String sdFile = result.getSDfile().get();
//
//            //读入sdFile文件，生成IAtomContainer对象
//            MDLV2000Reader reader = new MDLV2000Reader(new StringReader(sdFile));
//            IAtomContainer atomContainer = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class);
//            reader.read(atomContainer);
//
//            // 创建SMILES生成器
//            SmilesGenerator generator = new SmilesGenerator(SmiFlavor.Unique);
//
//            //生成SMILES文件
//            String smiles = generator.create(atomContainer);
//            // 移除SMILES字符串中的氢
//            Pattern pattern = Pattern.compile("\\[H\\d*\\]");
//            Matcher matcher = pattern.matcher(smiles);
//            smiles = matcher.replaceAll("");
//
//            return  smiles;
//
//        } catch (IOException | CDKException e) {
//            e.printStackTrace();
//            return "无法识别";
//        }
//    }
}
